//12. 整数转罗马数字
//思路：使用pair，记下来 罗马数字与对应的阿拉伯数字
//从大到小依次放入
//num与最大的数字比较，如果最大数字小于num，num减该数字，字符串就尾插对应的罗马数字


#include <string>
#include <utility>
using namespace std;

//pair有多个值，由我们自己定义
const pair<int, string> val[] = {
    {1000, "M"}, {900, "CM"}, {500, "D"}, {400, "CD"}, {100, "C"}, 
    {90, "XC"}, {50, "L"}, {40, "XL"}, {10, "X"}, {9, "IX"}, 
    {5, "V"}, {4, "IV"}, {1, "I"},
};
class Solution
{
public:
    string intToRoman(int num)
    {
        string ans;
        for (const auto& v : val)
		{
			while (num >= v.first)//first是pair的第一个值
			{
				ans += v.second;//second是pair的第二个值
				num -= v.first;
			}
			if (0 == num) break;
		}
        return ans;
    }
};